1.0 Automated Digital Circuit Design
As is well known in the art, digital electronic circuitry is often developed in an automated fashion by repeatedly compiling a design description into finer and finer levels of detail. FIG. 1 shows a perspective of a typical design methodology 100 for a digital circuit. At a highest level of detail (i.e., least amount of detail), referred to as the “behavioral” level of detail 101, a digital circuit design is described solely in behavioral terms. Better said, at the “behavioral level”, the digital circuit to be developed is first described in terms of the methods it performs rather than in terms of the digital electronic circuitry that may be used to perform these methods.
As such, the specific format used to represent a digital circuit at the behavioral level 101 (e.g., a VHDL description or a Verilog description) is akin to a software program (e.g., with IF THEN, GOTO statements and the like) that describe, at a high level, methods that will be executed by the digital circuit. Typically, a circuit description at a particular level of detail is automatically brought to a next lower level of detail (i.e., more detailed) through a software process known as compiling. Compiling effectively converts a first file type into a second file type.
As such, with respect to a digital circuit design process, a particular level of circuit design detail is recorded according to a first file type (e.g., a behavioral level file type); and, the next lower level of detail is recorded according to a second file type. For example, a compiler may be used to compile a behavioral level of detail 101 description of a digital circuit to its next lower level of detail (the Register Transfer Level (RTL) 102). The RTL level 102 of detail effectively “blends” structural and methodological characteristics of the digital circuit within the same description.
For example referring to FIG. 1, note that the variable “A” that was originally described purely in abstract mathematical terms at the behavioral level 101, is re-described at the RTL level 102 as a 5 bit binary value. That is, the syntax A[4:0] observed at the RTL level 102 indicates that the variable “A” will eventually be implemented within the digital electronic circuit (that the RTL level 102 description describes) as five discrete wires (e.g., as part of a data bus); wherein, each wire will be capable of carrying its own voltage so as to indicate whether or not its value corresponds to a “1” or a “0”.
Methods are still represented at the RTL level 102; and, as such, an RTL level 102 description is also akin to a software program. However, at various locations across an RTL level description, it is not unusual to find that certain high level methodologies originally described at the behavioral level 101 have been re-described as “logical” operations (e.g., SHFT, AND, OR, etc.). Although not necessarily a strict rule, RTL level 102 descriptions may be though of as a logical/binary “re-description” of the behavioral level 101 description; and, as such, the original functions specified by the designer at the behavioral level 101 are represented as a “digital” process at the RTL level 102.
An RTL level 102 description is usually compiled into a “gate level” 103 description. At the gate level 103, methods are largely (if not entirely) eliminated from the description of the digital circuit. The compiler used to produce the gate level 103 description (which may be referred to as a gate level netlist) effectively converts the logical operations of the RTL level description into specific logic circuits or “gates” (e.g., shift registers, AND gates, OR gates, XNOR gates, etc.). A depiction of a gate level circuitry is observed in FIG. 1.
Once a gate level netlist has been created, a transistor level 104 description (which, again, may be referred to as a netlist) of the circuit can be created (e.g., through a combination of compilation and timing analysis techniques). As logic gates are built with transistors, a transistor level 104 netlist is created by re-describing each logic gate in terms of its constituent transistors. Here, as transistors are the fundamental building blocks of an electronic circuit, the transistor level 104 netlist represents a lowest level of detail (or next to lowest level of detail if one considers layout information as being the lowest level of detail).
2.0 Lack of Widely Accepted Automated Analog and/or Mixed Signal Design Technology
Digital signal processing, as alluded to above, “reacts” to an input signal depending on whether the input signal is recognized as a “1” or a “0”. Likewise, digital signal processing generates an output signal from the perspective that the output signal corresponds to a “1” or a “0”. Analog signal processing, by contrast, views an input signal as being continuous (rather than discrete “1”s or “0”s); and, on the output side, tailors a continuous output signal (as opposed to discrete “1”s or “0”s). When both analog and digital signal processing techniques are involved in the overall function of an electronic circuit, the electronic circuit may be referred to as a “mixed signal” circuit.
That is, mixed signal refers to the notion that both digital signal processing and analog signal processing are being performed with the same circuit. As such, mixed signal circuitry and analog circuitry are both configured to process analog signals (and, likewise, contain some degree of analog circuitry). Unfortunately, the design of analog and (at least the analog portion of) mixed signal circuit design has traditionally involved manual, hand crafted techniques rather than automated techniques. Here, the manual, hand crafted approach to analog and mixed signal circuit design tends to slow down or otherwise complicate the circuit design flow process.
With the semiconductor minimum feature sizes approaching 0.10 micron and below, highly integrated semiconductor chips are expected that will integrate significant amounts of both digital signal processing circuitry and analog signal processing circuitry onto the same semiconductor chip. Furthermore, with the growth of networking and handheld applications, analog signal processing has observed a surge in interest (because communication and handheld circuits tend to depend more upon analog/mixed signal functionality than those used for desktop or raised floor computing system applications).
As such, analog and mixed signal circuit design techniques have received widespread attention recently because of the relative scarcity of analog circuit designers (in light of the increased demand for analog and mixed signal circuit designs themselves) combined with the manual, hand crafted approach to analog and mixed signal circuit design. Better said, the combination of manual design techniques, a small supply of analog designers and the increased demand for analog and mixed signal circuit designs has threatened the ability of analog/mixed signal circuit design teams to meet demand in a timely fashion.